package com.ruoyi.system.service.impl;

import com.google.gson.Gson;

import com.ruoyi.system.common.PluginJarTools;
import com.ruoyi.system.domain.SqlResult;
import com.ruoyi.system.mapper.IndSvrSqlMapper;
import com.ruoyi.system.service.ISqlService;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public class SqlServiceImpl implements ISqlService {

    //
//    @Resource
//    private IIndsvrPluginSqlLogService indsvrPluginSqlLogService;
//
//
//    private PluginJarTools.PluginInfo info;
//    private String sessionKey;
//    @Override
//    public void setInfo(PluginJarTools.PluginInfo info) {
//        this.info=info;
//    }
//    @Override
//    public void setSessionKey(String key) {
//        this.sessionKey=key;
//    }
//
//
//    private Gson gson = new Gson();
//
//    @Resource
//    private IndSvrSqlMapper indSvrSqlMapper;
//
//    @Override
//    public int dml(String sql) {
//        int dml = indSvrSqlMapper.dml(sql);
//        log(sql,1,null,dml);
//        return dml;
//    }
//
//    @Override
//    public List<SqlResult> dql(String sql) {
//        List<SqlResult> dql = indSvrSqlMapper.dql(sql);
//        log(sql,0,dql,dql.size());
//        return dql;
//    }
//
//    private void log(String sql,int type,List data,int size){
//        try {
//            IndsvrPluginSqlLog indsvrPluginSqlLog = new IndsvrPluginSqlLog();
//            indsvrPluginSqlLog.setCreateBy(ShiroUtils.getLoginName());
//            indsvrPluginSqlLog.setPluginId(info.getPlugin().getId());
//            indsvrPluginSqlLog.setEventSessionKey(sessionKey);
//            indsvrPluginSqlLog.setSqlCmd(sql);
//            indsvrPluginSqlLog.setSqlInfluenceSize((long) size);
//            if (type==1) {
//                //增删改
//                indsvrPluginSqlLog.setSqlType(1L);
//            }else {
//                //查
//                indsvrPluginSqlLog.setSqlType(0L);
//                indsvrPluginSqlLog.setSqlResultSet(gson.toJson(data));
//            }
//            indsvrPluginSqlLogService.insertIndsvrPluginSqlLog(indsvrPluginSqlLog);
//        }catch (Exception e){
//            System.out.println(e);
//        }
//    }
}
